Within the context of the OSGi environment, many Java-based services that can be remotely accessed and managed have been defined such as Log, Configuration management, Preferences, Http Service, XML parsing, Device Access, etc. However, not all services capable of being written for deployment using J2EE have been defined for the OSGi environment. Therefore, when new J2EE Applications are written and are to be deployed in such an environment, the necessary resources and facilities required by such a new web application may not be available in the OSGI environment. Therefore, some way of enabling successful provisioning for deployment for such applications must be provided. That is the central object of the present invention.
In software engineering, a “web application” is an application that is accessed with a user's web browser over a network such as the Internet or an intranet. Web applications are very popular because of the almost universal use of the web browser as a client. The ability to update and maintain the web applications without disturbing or changing the software on many thousands of client computers is a powerful reason for the popularity of web applications. Such web applications are used to implement a host of useful services and functions such as webmail, online sales, online auctions, discussion boards, weblogs, etc. In earlier types of client-server computing, each application had its own client program which served as it's user interface and which had to be separately installed on each user's personal computer. Any upgrade to the server portion of the application would typically require a corresponding upgrade to the clients installed on each user's workstation, greatly increasing the cost of support and decreasing productivity. In contrast to this, modern web applications can dynamically generate a series of web pages for display in a standard format supported by the commonly used browsers available today and typically running HTML or XHTML. Additionally, client-side scripting in standard languages such as JavaScript® (trademark of Sun Microsystems, Inc), is commonly employed to add dynamic elements to the user's interface. Generally, each web page is delivered to the client as a static document, but sequencing the pages provides an interactive experience as user input is returned over the web as form elements embedded in page markups. During a session, the web browser interprets and displays the pages and acts as a sort of universal client for any web application. Presently, Java, remains one of the most prevalent languages for writing web applications for enterprises and specifically, J2EE remains the standard for developing such applications.
As alluded to above, supporting deployment of J2EE-based web applications within an OSGi environment can be a source of difficulty because there are conflicting architectures in both OSGi and J2EE and inabilities of the OSGi environment to support the dependencies inherent in both existing and in newly-written J2EE applications for which deployment is desired. Such dependencies may not be fulfilled in the J2EE application itself and this will cause failure of deployment. The present invention provides a way to support deployment of J2EE web applications in an OSGi environment by provisioning the dependencies in any J2EE based web applications and constructing the OSGi Bundles for execution that are necessary within an OSGi environment.